﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XmlGenSharpConfig"
    targetNamespace="http://tempuri.org/XmlGenSharpConfig.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/XmlGenSharpConfig.xsd"
    xmlns:mstns="http://tempuri.org/XmlGenSharpConfig.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
 <xs:element name="Config" type="Config" />
 
 <xs:complexType name="Config">
  <xs:sequence>
   <xs:element name="UsingsSection" type="UsingsSection" minOccurs="0" maxOccurs="1" />
   <xs:element name="ClassTable" type="ClassTable" minOccurs="0" maxOccurs="1" />
  </xs:sequence>
  <xs:attribute name="DefaultNamespace" type="xs:string" use="optional" />
  <xs:attribute name="MultiFileOutput" type="xs:boolean" use="optional" />
 </xs:complexType>
 
 <xs:complexType name="UsingsSection">
  <xs:sequence>
   <xs:element name="ExtraUsings" type="ExtraUsings" minOccurs="0" maxOccurs="1" />
  </xs:sequence>
  <xs:attribute name="SuppressSystemUsings" type="xs:boolean" use="optional" default="false" />
  <xs:attribute name="SuppressStandardUsings" type="xs:boolean" use="optional" default="false" />
 </xs:complexType>

 <xs:complexType name="ExtraUsings">
  <xs:sequence>
   <xs:element name="Using" type="Using" minOccurs="0" maxOccurs="unbounded" />
  </xs:sequence>
 </xs:complexType>

 <xs:complexType name="Using">
  <xs:attribute name="Namespace" type="xs:string" use="required" />
 </xs:complexType>

 <xs:complexType name="ClassTable">
  <xs:sequence>
   <xs:element name="Class" type="ClassConfigData" minOccurs="0" maxOccurs="unbounded" />
  </xs:sequence>
 </xs:complexType>

 <xs:complexType name="ClassConfigData">
  <xs:attribute name="Name" type="xs:string" use="required" />
  <xs:attribute name="Generate" type="xs:boolean" use="optional" default="true" />
  <xs:attribute name="DefType" type="xs:string" use="optional" default="" />
 </xs:complexType>
</xs:schema>
